home *** CD-ROM | disk | FTP | other *** search
/ Java Programmer's Toolkit / Java Programmer's Toolkit.iso / solaris2 / jdk / src / java / awt / test / keytest.jav < prev    next >
Encoding:
Text File  |  1995-10-30  |  4.5 KB  |  211 lines

  1. /*
  2.  * @(#)KeyTest.java    1.5 95/10/03 Sami Shaio
  3.  *
  4.  * Copyright (c) 1995 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19. import java.awt.*;
  20.  
  21. public class KeyTest extends Frame {
  22.     String    value = "";
  23.     Color    keyColor = Color.green;
  24.     Font    font = new Font("Helvetica", Font.BOLD, 24);
  25.  
  26.     public KeyTest() {
  27.     resize(300, 300);
  28.     show();
  29.     }
  30.  
  31.     public static void main(String args[]) {
  32.     new KeyTest();
  33.     }
  34.  
  35.     public void paint(Graphics g) {
  36.     g.setColor(keyColor);
  37.     g.setFont(font);
  38.     Rectangle bounds = bounds();
  39.     FontMetrics fm = g.getFontMetrics(font);
  40.     
  41.     g.drawString(value,
  42.              ((bounds.width - fm.stringWidth(value))/ 2),
  43.              ((bounds.height - fm.getHeight()) / 2));
  44.     }
  45.  
  46.     void displayKey(int key, int modifiers, boolean pressed) {
  47.     String keyString;
  48.  
  49.     char s[] = new char[1];
  50.  
  51.     if (pressed) {
  52.         keyColor = Color.red;
  53.     } else {
  54.         keyColor = Color.black;
  55.     }
  56.     if ((modifiers&Event.CTRL_MASK) != 0) {
  57.         s[0] = (char)(key + 'a' - 1);
  58.     } else {
  59.         s[0] = (char)key;
  60.     }
  61.     keyString = new String(s);
  62.  
  63.     value = modifierString(modifiers) + keyString + "[" + key + "]";
  64.     repaint();
  65.     }
  66.  
  67.     String modifierString(int modifiers) {
  68.  
  69.     String mstr = "";
  70.     if ((modifiers&Event.CTRL_MASK) != 0) {
  71.         mstr = mstr+"Ctrl-";
  72.     }
  73.     if ((modifiers & Event.SHIFT_MASK) != 0) {
  74.         mstr = mstr+"Shift-";
  75.     }
  76.     if ((modifiers & Event.META_MASK) != 0) {
  77.         mstr = mstr+"Meta-";
  78.     }
  79.     if ((modifiers & Event.ALT_MASK) != 0) {
  80.         mstr = mstr+"Alt-";
  81.     }
  82.  
  83.     return mstr;
  84.     }
  85.  
  86.     void displayKeyAction(Event e, boolean pressed) {
  87.     String keyString;
  88.  
  89.     if (pressed) {
  90.         keyColor = Color.red;
  91.     } else {
  92.         keyColor = Color.black;
  93.     }
  94.     switch (e.key) {
  95.       case Event.HOME:
  96.         keyString = "Home";
  97.         break;
  98.       case Event.END:
  99.         keyString = "End";
  100.         break;
  101.       case Event.PGUP:
  102.         keyString = "PageUp";
  103.         break;
  104.       case Event.PGDN:
  105.         keyString = "PageDown";
  106.         break;
  107.       case Event.UP:
  108.         keyString = "Up";
  109.         break;
  110.       case Event.DOWN:
  111.         keyString = "Down";
  112.         break;
  113.       case Event.LEFT:
  114.         keyString = "Left";
  115.         break;
  116.       case Event.RIGHT:
  117.         keyString = "Right";
  118.         break;
  119.       case Event.ESC:
  120.         keyString = "ESC";
  121.         break;
  122.       case Event.F1:
  123.         keyString = "F1";
  124.         break;
  125.       case Event.F2:
  126.         keyString = "F2";
  127.         break;
  128.       case Event.F3:
  129.         keyString = "F3";
  130.         break;
  131.       case Event.F4:
  132.         keyString = "F4";
  133.         break;
  134.       case Event.F5:
  135.         keyString = "F5";
  136.         break;
  137.       case Event.F6:
  138.         keyString = "F6";
  139.         break;
  140.       case Event.F7:
  141.         keyString = "F7";
  142.         break;
  143.       case Event.F8:
  144.         keyString = "F8";
  145.         break;
  146.       case Event.F9:
  147.         keyString = "F9";
  148.         break;
  149.       case Event.F10:
  150.         keyString = "F10";
  151.         break;
  152.       case Event.F11:
  153.         keyString = "F11";
  154.         break;
  155.       case Event.F12:
  156.         keyString = "F12";
  157.         break;
  158.       default:
  159.         keyString = "???";
  160.         break;
  161.     }
  162.     value = modifierString(e.modifiers) + keyString;
  163.     repaint();
  164.     }
  165.  
  166.     void displayMouse(Event e) {
  167.     value = modifierString(e.modifiers) + "Button (" + e.x + ", "
  168.         + e.y + ")";
  169.     switch (e.id) {
  170.       case Event.MOUSE_DRAG:
  171.         value = value + "...";
  172.       case Event.MOUSE_DOWN:
  173.         keyColor = Color.red;
  174.         break;
  175.       case Event.MOUSE_MOVE:
  176.         value = value + "'''";
  177.       case Event.MOUSE_UP:
  178.         keyColor = Color.black;
  179.         break;
  180.       default:
  181.         break;
  182.     }
  183.     repaint();
  184.     }
  185.  
  186.     public boolean handleEvent(Event e) {
  187.     switch (e.id) {
  188.       case Event.WINDOW_DESTROY:
  189.         System.exit(0);
  190.         return true;
  191.       case Event.MOUSE_DOWN:
  192.       case Event.MOUSE_UP:
  193.       case Event.MOUSE_MOVE:
  194.       case Event.MOUSE_DRAG:
  195.         displayMouse(e);
  196.         return true;
  197.       case Event.KEY_PRESS:
  198.       case Event.KEY_RELEASE:
  199.         displayKey(e.key, e.modifiers, e.id==Event.KEY_PRESS);
  200.         return true;
  201.       case Event.KEY_ACTION:
  202.       case Event.KEY_ACTION_RELEASE:
  203.         displayKeyAction(e, e.id==Event.KEY_ACTION);
  204.         return true;
  205.       default:
  206.         return false;
  207.     }
  208.     }
  209. }
  210.  
  211.